<%= user_title_bar(@user) %>

<h2>Test Interface</h2>

<p>
  <b>Note:</b> Test interface will be disabled in the last 30 minutes
   of the contest time on your site.
</p>

<% if @problems.length==0 %>
  There is no submission
<% else %>

<script type="text/javascript">
var submissionCount = new Array();
<% @submissions.each do |submission| %>
submissionCount[<%= submission.problem_id %>]=<%= submission.number %>;
<% end %>

function updateSubmissionList() {
  currentProb = document.getElementById("test_request_problem_id").value;
  count = submissionCount[currentProb];
  submissionSelect = document.getElementById("test_request_submission_number");
  old_len = submissionSelect.length;
  // clear the box
  for(i=0; i<old_len; i++)
    submissionSelect.remove(0);
  for(i=count; i>=1; i--) {
    try {
      submissionSelect.add(new Option(""+i,""+i,false,false),null);
    } catch(ex) {
      submissionSelect.add(new Option(""+i,""+i,false,false));
    }
  }
}
</script>

<% if Configuration.show_submitbox_to?(@user) and Configuration.allow_test_request(@user) %>
  <div class="submitbox">
  <%= error_messages_for 'submitted_test_request' %>
  <% form_for :test_request, nil, 
              :url => { :action => 'submit'}, 
              :html => { :multipart => true } do |f| %>
    <table>
      <tr>
        <td>Task:</td>
        <td>
	  <%= select(:test_request, 
	             :problem_id, 
	             @problems.collect {|p| [p.name, p.id]}, {}, 
	             { :onclick => "updateSubmissionList();" }) %>
        </td>
      </tr>
      <tr>
        <td>Submission:</td>
        <td>
	  <%= select(:test_request,
	             :submission_number, 
	             ((1..@submissions[0].number).collect {|n| [n,n]}).reverse) %>
        </td>
      </tr>
      <tr>
        <td>Input data:</td>
        <td>
          <%= f.file_field :input_file %>
        </td>
        <td>
          (combined size should not exceed 2MB)
        </td>
      </tr>
      <tr>
        <td>
          Additional file<sup><span style="color:red">*</span></sup>:
        </td>
        <td>
          <%= f.file_field :additional_file %>
        </td>
        <td>
          <small>
            * This option works <u>only</u> for task beads.
            You can use this to submit <tt>questions.txt</tt>.<br/>
            The file shall be copied to the execution directory before your program runs.
          </small>
        </td> 
      </tr>
      <tr>
        <td colspan="2">
          <%= submit_tag 'submit' %>
        </td>
      </tr>
    </table>
  <% end %>
  </div>
<% end %>

<h3>Previous requests</h3>

<table class="info">
  <tr class="info-head">
    <th>at</th>
    <th>problem</th>
    <th>sub #</th>
    <th>status</th>
    <th>output (first 2kb)</th>
    <th>compiler message</th>
    <th>detail</th>
  </tr>
  <%= render :partial => 'test_request', :collection => @test_requests %>
</table>

<% end %>

